home *** CD-ROM | disk | FTP | other *** search
/ Professor Multimedia / Professor Multimedia.iso / stup / specific.inc < prev   
Text File  |  1993-12-09  |  8KB  |  245 lines

  1. ''--------------------------------------------------------------------
  2. '' Professor MULTIMEDIA CD-specific install functions
  3. '' Copyright (c) 1993 Individual Software, Inc.
  4. ''--------------------------------------------------------------------
  5.  
  6. '' Set up product-specific titles, etc.
  7. SUB SetProductTitles STATIC
  8.     SetTitle "Professor MULTIMEDIA"      ''Setup Window Title
  9.     PMMAPP$ = "Professor MULTIMEDIA"     ''Text under the icon
  10. END SUB
  11.  
  12.  
  13. FUNCTION InfFile() STATIC AS STRING
  14.     InfFile = "PMM.INF"
  15. END FUNCTION
  16.  
  17.  
  18. FUNCTION MakeInstDir(D$) STATIC AS STRING
  19.  
  20.     '' If we're lucky, this will tell us where we're located
  21.     S$ = GetIniKeyString(WININI$, "ProfMultiMedia", "PMM")
  22.  
  23.     '' If that didn't work, then try this for 2.02
  24.     IF S$ = "" THEN
  25.         S$ = GetIniKeyString(WININI$, "Sound API", "MaleVoice")
  26.         S$ = mid$(S$, 1, len(S$) - len("\VOICE3.VOI"))
  27.     END IF
  28.  
  29.     '' If that didn't work, then we'll punt with the default
  30.     IF S$ = "" THEN
  31.         S$ = D$ + ":\PMM"
  32.     END IF
  33.  
  34.     '' Homing file found (PMM.EXE, but could be file in destination dir)
  35.     IF EXISTS(MakePath(S$, "PMM.EXE")) THEN
  36.         r% = DoMsgBox("An installed copy of Professor MULTIMEDIA was found in " + S$+ ".", "Professor MULTIMEDIA", MB_OK)
  37.     END IF
  38.  
  39.     MakeInstDir = S$
  40. END FUNCTION
  41.  
  42.  
  43. SUB AddInfSectionNames(BASE$, SOUNDS$, BASEINST$, SOUNDSINST$) STATIC
  44.  
  45.     '' These are the base files we can install
  46.     AddListItem BASE$, "Base Files"
  47.     SetSymbolValue BASEINST$, GetSymbolValue(BASE$)
  48.  
  49.  
  50.     '' By default, we install all the above
  51. ''  SetSymbolValue SOUNDSINST$, GetSymbolValue(SOUNDS$)
  52.  
  53.     '' The user probably doesn't want all these on the HD by default
  54. ''  AddListItem SOUNDS$, "Video Samples"
  55.  
  56. END SUB
  57.  
  58.  
  59. SUB RecalcPath STATIC
  60.     CursorSave% = ShowWaitCursor()
  61.     RecalcOptFiles BASEFILES
  62.     RecalcOptFiles SOUNDFILES
  63.     RestoreCursor CursorSave%
  64. END SUB
  65.  
  66.  
  67. SUB AddOptFiles STATIC
  68.     AddOptFilesToCopyList BASEFILES
  69.     AddOptFilesToCopyList SOUNDFILES
  70. END SUB
  71.  
  72.  
  73. SUB AddOptFilesToCopyList (ftype%) STATIC
  74.  
  75.     IF GetListItem(CHECKSTATES$, ftype%) = "ON" THEN
  76.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  77.     IF ftype% = BASEFILES THEN
  78.         ''Base files
  79.         l% = GetListLength(BASEINST$)
  80.         FOR i% = 1 TO l% STEP 1
  81.                AddSectionFilesToCopyList GetListItem(BASEINST$, i%), SrcDir$, DEST$
  82.         NEXT i%
  83.  
  84.         AddSectionFilesToCopyList "ToolBook", SrcDir$, DEST$
  85.  
  86.         '' Install Video for Windows runtime
  87.         AddSectionFilesToCopyList "Media Player", MakePath(SrcDir$, "STUP\VFW"), WINDIR$
  88.         AddSectionFilesToCopyList "VFW Runtime", MakePath(SrcDir$, "STUP\VFW"), SYSDIR$
  89.         AddSectionFilesToCopyList "Codecs", MakePath(SrcDir$, "STUP\VFW"), WINDIR$
  90.         AddSectionFilesToCopyList "Cinepak Codec", MakePath(SrcDir$,"STUP\VFW"), SYSDIR$
  91.  
  92. ''--ELSEIF ftype% = SOUNDFILES THEN
  93. ''        l% = GetListLength(SOUNDSINST$)
  94. ''        FOR i% = 1 TO l% STEP 1
  95. ''            AddSectionFilesToCopyList GetListItem(SOUNDSINST$, i%), SrcDir$, DEST$
  96. ''----- NEXT i%
  97.     END IF
  98.     SrcDir$ = ""
  99.     END IF
  100.  
  101. END SUB
  102.  
  103.  
  104. SUB SetDriveStatus STATIC
  105.     FITS% = 0
  106.     drive$ = MID$(DEST$, 1, 1)
  107.     ndrive% = ASC(ucase$(drive$)) - ASC("A") + 1
  108.  
  109.     cost& = VAL(GetListItem(BASENEEDS$, ndrive%))
  110.     cost& = cost& + VAL(GetListItem(SOUNDNEEDS$, ndrive%))
  111.  
  112.     free& = GetFreeSpaceForDrive(drive$)
  113.  
  114.     IF cost& > free& THEN
  115.         FITS% = 1
  116.     END IF
  117.     ReplaceListItem DRIVETEXT$, 1, drive$ + ":"
  118.     ReplaceListItem DRIVETEXT$, 2, STR$(cost& / 1024) + " K"
  119.     ReplaceListItem DRIVETEXT$, 3, STR$(free& / 1024) + " K"
  120.  
  121.  
  122. ''  IF drive$ = WINDRIVE$ THEN
  123. ''        ReplaceListItem DRIVETEXT$, 4, ""
  124. ''        ReplaceListItem DRIVETEXT$, 5, ""
  125. ''        ReplaceListItem DRIVETEXT$, 6, ""
  126. ''  ELSE
  127. ''      ndrive% = ASC(ucase$(WINDRIVE$)) - ASC("A") + 1
  128.  
  129. ''      cost& = VAL(GetListItem(BASENEEDS$, ndrive%))
  130. ''      cost& = cost& + VAL(GetListItem(SOUNDNEEDS$, ndrive%))
  131.  
  132. ''      IF cost& = 0 THEN
  133. ''          ReplaceListItem DRIVETEXT$, 4, ""
  134. ''          ReplaceListItem DRIVETEXT$, 5, ""
  135. ''          ReplaceListItem DRIVETEXT$, 6, ""
  136. ''      ELSE
  137. ''          free& = GetFreeSpaceForDrive(WINDRIVE$)
  138. ''          IF cost& > free& THEN
  139. ''              FITS% = 1
  140. ''          END IF
  141. ''          ReplaceListItem DRIVETEXT$, 4, WINDRIVE$ + ":"
  142. ''          ReplaceListItem DRIVETEXT$, 5, STR$(cost& / 1024) + " K"
  143. ''          ReplaceListItem DRIVETEXT$, 6, STR$(free& / 1024) + " K"
  144. ''      END IF
  145. ''  END IF
  146. END SUB
  147.  
  148.  
  149. '' Add billboard dialogs for this app
  150. SUB AddBillboards STATIC
  151.     AddToBillboardList CUIDLL$, BBD1, "FModelessDlgProc", 100
  152.     AddToBillboardList CUIDLL$, BBD6, "FModelessDlgProc", 100
  153. END SUB
  154.  
  155.  
  156. SUB ConfigureApps STATIC
  157.  
  158.     '' This is so Fixer can find where we're installed
  159.     CreateIniKeyValue WININI$, "ProfMultiMedia", "PMM", DEST$, cmoOverwrite
  160.  
  161.     '' This is the name of the group we'll install into
  162.     GROUP$ = "Professor MULTIMEDIA"
  163.  
  164.     '' Configure base applications
  165.     IF GetListItem(CHECKSTATES$, BASEFILES) = "ON" THEN
  166.  
  167. MakeGroup:
  168.     '' Create a group for us...
  169.     CreateProgmanGroup GROUP$, "", cmoNone
  170.  
  171.     '' Setup PMM Program
  172. ''--CreateProgmanItem GROUP$, PMMAPP$, MakePath(DEST$,"tbook.exe")+" "+CDDRV$+"mainmenu.tbk", MakePath(DEST$,"PMM.ICO"), cmoOverwrite
  173.     CreateProgmanItem GROUP$, PMMAPP$, MakePath(DEST$,"PMM.EXE"),"" , cmoOverwrite
  174.  
  175.     '' Disable Win 3.1 system startup and exit sounds
  176.     s$ = GetIniKeyString(WININI$, "Sounds", "SystemStart")
  177.     CreateIniKeyValue WININI$, "Sounds", "OldSystemStart", s$, cmoOverwrite
  178.     CreateIniKeyValue WININI$, "Sounds", "SystemStart", "<none>,System Start", cmoOverwrite
  179.  
  180.     s$ = GetIniKeyString(INI$, "Sounds", "SystemExit")
  181.     CreateIniKeyValue WININI$, "Sounds", "OldSystemExit", s$, cmoOverwrite
  182.     CreateIniKeyValue WININI$, "Sounds", "SystemExit", "<none>,System Exit", cmoOverwrite
  183.  
  184.     '' Setup Video for Windows
  185.     CreateIniKeyValue SYSINI$, "Drivers", "VIDC.MSVC", "msvidc.drv", cmoNone
  186.     CreateIniKeyValue SYSINI$, "Drivers", "VIDC.RT21", "indeo.drv", cmoNone
  187.     CreateIniKeyValue SYSINI$, "mci", "AVIVideo", "mciavi.drv", cmoNone
  188.     CreateIniKeyValue WININI$, "mci extensions", "avi", "AVIVideo", cmoNone
  189.  
  190. ''------------------------------------------------------CinePak
  191.     'This routine should be run whether or not the files are copied.
  192.     'This is because the existence of the files on disk is not a
  193.     'guarantee of correct installation!
  194.  
  195.     'Updating CONTROL.INI and SYSTEM.INI
  196.     CreateIniKeyValue GetWindowsDir() + "control.ini", "Userinstallable.drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite
  197.     CreateIniKeyValue GetWindowsDir() + "control.ini", "related.desc", "VIDC.CVID", "", cmoOverwrite
  198.     CreateIniKeyValue GetWindowsDir() + "system.ini",  "drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite
  199. ''------------------------------------------------------
  200.  
  201.     '' Hack because the MIDI files have goofs in them...
  202.     CreateIniKeyValue SYSINI$, "mciseq.drv", "disablewarning", "true", cmoNone
  203.  
  204.     res% = Run("regedit.exe /s " + MakePath(WINDIR$, "mplayer.reg"))
  205.     '' res% = Run("profdisp.exe")
  206.  
  207.     END IF
  208.  
  209. END SUB
  210.  
  211.  
  212.  
  213. '' Remove all files and directories...
  214.  
  215. SUB DoUninstall STATIC
  216. ''  res% = sndPlaySound(MakePath(INSTSNDDIR$, "v13.wav"), 3)
  217.     IF IDYES = DoMsgBox("Are you sure you want to remove Professor MULTIMEDIA from your system?", "Professor MULTIMEDIA ", MB_YESNO) THEN
  218.         DEST$ = GetIniKeyString(WININI$, "ProfMultiMedia", "PMM")
  219.  
  220.         IF DEST$ <> "" THEN
  221.             old% = ShowWaitCursor()
  222.  
  223.             RemDirectory DEST$
  224.  
  225.             RemoveIniSection WININI$, "Sound API", cmoNone
  226.  
  227.             '' Reset default startup and exit sounds
  228.             s$ = GetIniKeyString(WININI$, "Sounds", "OldSystemStart")
  229.             RemoveIniKey WININI$, "Sounds", "OldSystemStart", cmoNone
  230.             CreateIniKeyValue WININI$, "Sounds", "SystemStart", s$, cmoOverwrite
  231.  
  232.             s$ = GetIniKeyString(WININI$, "Sounds", "OldSystemExit")
  233.             RemoveIniKey WININI$, "Sounds", "OldSystemExit", cmoNone
  234.             CreateIniKeyValue WININI$, "Sounds", "SystemExit", s$, cmoOverwrite
  235.  
  236.             RestoreCursor old%
  237.  
  238.             i% = DoMsgBox("Professor MULTIMEDIA has been removed.  You can run Setup later to re-install it.", "Professor MULTIMEDIA", MB_OK)
  239.             END
  240.         ELSE
  241.             i% = DoMsgBox("Professor MULTIMEDIA is not installed or cannot be found!", "Professor MULTIMEDIA", MB_OK)
  242.         END IF
  243.     END IF
  244. END SUB
  245.